 var table ,form ,laypage ,layer ,element ,laydate ,upload//时间组件
$(function(){
    layui.use(['table','form','laypage','layer', 'element', 'laydate','upload',], function () {
    	table = layui.table;
        form=layui.form;
        laypage = layui.laypage ;//分页
        layer = layui.layer ;//弹层
        element = layui.element; //元素操作
        laydate = layui.laydate; //时间组件 
        upload = layui.upload;

		//监听表格数据	   
		table.render({
		    elem: '#tabledata',
		    height: $(window).height()-200,		   
		    text: {
			    none: '暂无相关数据' //默认：无数据。注：该属性为 layui 2.2.5 开始新增
			  },
			method: 'post',  
			loading: true,
		    url: '/sysRole/getList.do' ,//数据接口
		    headers: setHeader(),
		    parseData: function(res){
                return res.resultData;
            },
            response: {
                statusName: 'status', //规定数据状态的字段名称，默认：code
                statusCode: 200, //规定成功的状态码，默认：0
                msgName: 'hint', //规定状态信息的字段名称，默认：msg
                countName: 'total', //规定数据总数的字段名称，默认：count
                dataName: 'data' //规定数据列表的字段名称，默认：data
            },
		    page: true, //开启分页
		    cols: [[    //表头
		      {field: 'id', title: 'ID',   align:'center',hide:true,width:5},
		      {field: 'xuhao', title: '序号',  align:'center', type:'numbers',width:'10%',fixed:'left'},
		      {field: 'name', title: '角色名称', align:'left',width:'20%'},
		      {field: '', title: '创建时间', align:'center',width:'10%', 
		    	  templet: function(data){
			  			return changeTime(data.createTime)					        							        
			  		}  
		      },
		      {field: 'createName', title: '创建人', align:'center',width:'15%'},
		      {field: 'remarks', title: '备注',align:'left',width:'30%'},
		      {field: '', title: '操作', align:'center',width:'14%',
			      templet: function(data){
						return '<div class="layui-btn-group">'+	  
	                             '<a href="javascript:;" class="layui-btn  layui-btn-xs  BTNSHOW BTNSHOW_EDIT" lay-event="edit">编辑</a>'+
	                             '<a href="javascript:;" class="layui-btn layui-btn-danger layui-btn-xs BTNSHOW BTNSHOW_DELETE" lay-event="del" >删除</a>'+	                             
                               '</div>'   
					}
		      }
		    ]],
		    done: function (res) {
		    	 permissionFUN()//功能按钮权限
		    	 if(res.status!=200){
		    		if(res.status == 666){
		    			  TIMEOUT(); 
	  		        }else{
                	  $(".layui-none").text(res.resultMsg)
	  		        }  
                }
            }
		});                
  	  //监听行工具事件
  	  table.on('tool(auth-table)', function(obj){
  	    var data = obj.data;
  	    if(obj.event === 'del'){
  		      layer.confirm('确认要删除该数据?', function(index){
  			    	//异步删除数据
	  		    	var requestData = {"id": data.id};
	          	  	$.ajax({
	      	           url: "/sysRole/delete.do",               //请求地址
	      	           type: "POST",              //请求类型
	      	           data:formatParam(requestData),              //请求数据
	      	           timeout: 200000,                //请求超时时间(毫秒)
	      	           headers: setHeader(),
	      	           success:function(res){         //请求成功
	      	        	   if(res.status == 200)
	      	  				{
		      	        		 layer.msg(res.resultMsg, {icon: res.icon},function(){
	      	    					table.reload("tabledata", {});
	      						}); 					
	      	  				}else if(res.status == 666){
	      	  				  TIMEOUT(); 
	      	  		        }else{
	      	  					layer.msg(res.resultMsg, {icon: res.icon});
	      	  				}
	      	        	   form.render();      
	                    }
	                 })
	                 layer.close(index);//关闭确认框
	                 return false;
  			      }); 

  	    }else if(obj.event === 'edit'){
  	    	//编辑按钮事件
  	    	var num = obj.data;
  	    	var fullindex=layer.open({
		        type: 2,
		        area: ['800px', '420px'],
		        fix: false, //不固定
		        maxmin: true,
		        shadeClose: true,
		        shade:0.4, //遮罩层
		        title: ['角色详情编辑','background:#1E9FFF;color:#fff'],
		        content: "/res/page/user/role_form.html?id="+data.id+'&permissionId='+permissionId
		    });			  	  		    
		    form.render();
  	     }
  	     form.render();
  	  });
  	//是否启用监听方案swith  
      form.on('switch(switchfile)', function(num){
      	var checkbox = $(this);//当前的swith
  	    var linkid =num.elem.attributes['linkid'].nodeValue;//获取自定义方案id
  	    var switchtype =num.elem.name;//方案开关类型：
  	    var checkswith=num.elem.checked; //开关是否开启，true或者false
  	    var inParam={};
  	    inParam.id = linkid;
  	    if(checkswith){
  	    	inParam[switchtype]=1//开关的值
  	    	
  	    }else{
  	    	inParam[switchtype]=0//开关的值
  	    } 
  	    var requestData ={"id":linkid};
	  	$.ajax({
	           url: "/sysPermission/isenable.do",               //请求地址
	           type: "POST",              //请求类型
	           data:formatParam(requestData),              //请求数据
	           timeout: 200000,                //请求超时时间(毫秒)
	           headers: setHeader(),
	           success:function(res){         //请求成功
	        	   if(res.status == 200)
	  				{ 
	        		   checkbox.prop("checked",checkswith);
		  				form.render("checkbox"); 					
	  				}else if(res.status == 666){
	  				   TIMEOUT(); 
	  		        }else{
	  					checkbox.prop("checked",!checkswith);
		  				form.render("checkbox");
	  				} 
	        	   layer.msg(res.resultMsg, {icon: res.icon});
            }
          })	    	   	     
      });
	  //编辑表单提交事件
	  form.on('submit(editInfo)', function(data){
		    this.blur();//防止点回车，按钮重复点击
		  	var loadIndex = layer.load(1);//显示加载层
		  	var requestData = formToJsonObj("form_edit", []);
		  	
		  	var val1=$("#Color1").val();
		  	var val2=$("#Color2").val();
		  	var colorArry=[];
		  	console.log(val2);
		  	colorArry.push(val1,val2);
		  	colorArry=removeEmpty(colorArry);
		  	requestData.backgroundColor=colorArry;
		  	
		  	$.ajax({
		           url: "/sysPermission/update.do",               //请求地址
		           type: "POST",              //请求类型
		           data:formatParam(requestData),              //请求数据
		           timeout: 200000,                //请求超时时间(毫秒)
		           headers: setHeader(),
		           success:function(res){         //请求成功
		        	   if(res.status == 200)
		  				{
		    				layer.msg(res.resultMsg, {icon: res.icon},function(){
		    					layer.closeAll();//关闭加载层
		    					 renderTable();		
							}); 					
		  				}else if(res.status == 666){
		  				  TIMEOUT(); 
		  		        }else{
		  					layer.msg(res.resultMsg, {icon: res.icon});
		  				}  
	              }
	           })
			return false; //阻止表单跳转。
		});
  	  //折叠按钮事件
      $('#zd').click(function () {
    	  var btn = $(this);
          if(btn.attr('title') == '全部折叠')
          {
        	  treetable.foldAll('#tabledata');
        	  $(this).attr('title','全部展开');
        	  $(this).removeClass("layui-icon-triangle-d");
        	  $(this).addClass("layui-icon-triangle-r");
          }else
          {
        	  treetable.expandAll('#tabledata');
        	  $(this).attr('title','全部折叠');
        	  $(this).removeClass("layui-icon-triangle-r");
        	  $(this).addClass("layui-icon-triangle-d");
          }
      });
      //图片上传
      $("#addicon").change(function (ev) { 
      	var imgData;
      	// 构造一个文件渲染对象
		    var reader = new FileReader();
		    // 得到文件列表数组
		    var fileObj = $(this)[0].files[0];
		    // 拿到文件数据
		    reader.readAsDataURL(fileObj);

		    reader.onload = function() {
		        // 获取文件信息
		        imgData = reader.result;		    
		    };
          var formData = new FormData();
          formData.append('myFile', $(this)[0].files[0]); // 固定格式
          var tishi = layer.open({
        	    title: false
              ,closeBtn: 0
              ,shadeClose: false
              ,area: ['130px', '70px']
              ,type: 1
              ,content: '图片上传中...'
          }); 
          $.ajax({
                url:'/sysPermission/uploadImage.do' ,//后台接收数据地址
                headers: setHeader(),
                data:formData,
                type: "POST",
                dataType: "json",
                cache: false,			//上传文件无需缓存
                processData: false,		//用于对data参数进行序列化处理 这里必须false
                contentType: false,
                success:function(res){
                	if(res.status==200){
                		$("#viewer_icon img").attr("src",imgData);//查看地址
						$("#viewer_icon img").attr("data-original",imgData);//查看地址
                		$("#icon").val(res.resultData.path);
                		layer.msg("图片选择完成", {icon: 6});
                		form.render();//需要渲染一下
                	}else if(res.status == 666){
                		  TIMEOUT(); 
                    }else{
                    	layer.msg(res.resultMsg, {icon: res.icon});                    		
                	}
                	layer.close(tishi);
                }
            })
      });
      // 查询按钮提交查询信息
	    form.on('submit(queryData)', function(data){
	        // 组装查询条件
	        var reqData = getConditionValue();
	        // 重新加载表格数据
	        table.reload("tabledata", {
	             where: {"reqData" : JSON.stringify(reqData)}
		        ,page: {
		            curr: 1 //重新从第 1 页开始
		          }
	        });
	    });
   });
	
})
//图片点击事件
 function Viewerfun(id){
 	var viewer = new Viewer(document.getElementById(id), {
 		url: 'data-original',
 		navbar: false
   });
 } 
function onClick(e, treeId, treeNode) {
		$("#pname").val(treeNode.name);
		$("#pid").val(treeNode.permissionId);
		hideMenu();	
		if(treeNode.level==0){//0根节点1二级
			$("#gradientbgColor").show();
			$("#Color1").val("#373d41")//默认值
			$("#Color2").val("")
			colorpicker.render({
		       elem: '#backgroundColor1',
		       color: '#373d41'
		     });
		    colorpicker.render({
		       elem: '#backgroundColor2',
		       color: ''
		     });
		}else{
			$("#gradientbgColor").hide();
			$("#Color1 ,#Color2").val("")
		}
}
function showMenu() {
var cityObj = $("#pname");
var cityOffset = $("#pname").offset();
$("#menuContent").css({left:cityOffset.left + "px", top:cityOffset.top + cityObj.outerHeight() + "px"}).slideDown("fast");
$('ul.ztree').width(cityObj.width());//设置下拉菜单宽度	
$("body").bind("mousedown", onBodyDown);
}
function hideMenu() {
$("#menuContent").fadeOut("fast");
$("body").unbind("mousedown", onBodyDown);
}
function onBodyDown(event) {
if (!(event.target.id == "menuBtn" || event.target.id == "menuContent" || $(event.target).parents("#menuContent").length>0)) {
	hideMenu();
}
}